package com.bawei.library_image

import android.content.Context
import android.net.Uri
import android.widget.ImageView
import com.bawei.library_image.imageloader.FrescoImageLoader
import com.bawei.library_image.imageloader.GlideImageLoader
import com.bawei.library_image.imageloader.PicassoImageLoader
import java.io.File

/**
 * @Author : 
 * @Time : On 2023/6/20 15:46
 * @Description : ImageLoaderManager 图片加载管理
 */
class ImageLoaderManager(var imageStrategy: ImageStrategy) {
    //策略模式：返回对应图片加载器
    private var imageLoader:IImageLoader = when(imageStrategy){
        ImageStrategy.Glide -> GlideImageLoader()
        ImageStrategy.Fresco -> FrescoImageLoader()
        ImageStrategy.Picasso -> PicassoImageLoader()
    }

    fun loadIntoImageView(context: Context, source:Any, target: ImageView, config: ImageOptions){
        //攀段资源的类型
        when(source){
            is String -> imageLoader.loadUrlIntoImageView(context,source,target,config)
            is File -> imageLoader.loadFileIntoImageView(context,source,target,config)
            is Uri -> imageLoader.loadUriIntoImageView(context,source,target,config)
            is Int -> imageLoader.loadResourceIntoImageView(context,source,target,config)
            is Array<*> -> imageLoader.loadByteArrayIntoImageView(context,source as Array<Byte>,target,config)
        }
    }




}